package com.happy.manage.service;

import java.util.List;
import com.happy.manage.domain.Svideo;
import com.happy.manage.domain.SvideoWithUser;

/**
 * 短视频管理Service接口
 * 
 * @author 艾头条
 * @date 2024-11-16
 */
public interface ISvideoService 
{
    /**
     * 查询短视频管理
     * 
     * @param videoId 短视频管理主键
     * @return 短视频管理
     */
    public Svideo selectSvideoByVideoId(Long videoId);

    /**
     * 查询短视频管理列表
     * 
     * @param svideo 短视频管理
     * @return 短视频管理集合
     */
    public List<Svideo> selectSvideoList(Svideo svideo);

    /**
     * 新增短视频管理
     * 
     * @param svideo 短视频管理
     * @return 结果
     */
    public int insertSvideo(Svideo svideo);

    /**
     * 修改短视频管理
     * 
     * @param svideo 短视频管理
     * @return 结果
     */
    public int updateSvideo(Svideo svideo);

    /**
     * 批量删除短视频管理
     * 
     * @param videoIds 需要删除的短视频管理主键集合
     * @return 结果
     */
    public int deleteSvideoByVideoIds(Long[] videoIds);

    /**
     * 删除短视频管理信息
     * 
     * @param videoId 短视频管理主键
     * @return 结果
     */
    public int deleteSvideoByVideoId(Long videoId);

    /**
     * 分页查询视频信息，同时返回视频发布者的用户信息。
     *
     * @param xvideo 视频管理
     * @return 视频管理集合
     */
    List<SvideoWithUser> getSvideoWithUser(Svideo xvideo);

    /**
     * 增加视频观看次数
     *
     * @param videoId 视频ID
     * @return 结果
     */
    public int incrementViewCount(Long videoId);

    /**
     * 查询关注用户的视频列表
     *
     * @param userId 用户ID
     * @return 视频列表
     */
    public List<SvideoWithUser> selectFollowingUserVideos(Long userId);
}
